#指定运行环境,alpine为精简版jdk,能将原来的jar包减小一半多以上
#FROM java:8
FROM java:8-alpine

#作者
MAINTAINER wangsh

#声明一个挂载点，容器内此路径会对应宿主机的某个文件夹
VOLUME /tmp

#复制上下文目录下的target/demo-1.0.0.jar 到容器里
#COPY target/daison-server-1.0.2-SNAPSHOT.jar
ADD target/*.jar spring-demo.jar

#bash方式执行，使demo-0.0.1jar可访问
#RUN新建立一层，在其上执行这些命令，执行结束后， commit 这一层的修改，构成新的镜像。
#RUN sh -c 'touch /spring-demo.jar'
#RUN sh -c 'chmod -R 777 /var/run/docker.sock'
#RUN chown -R /home/data/gitlab/

#声明运行时容器提供服务端口，这只是一个声明，在运行时并不会因为这个声明应用就会开启这个端口的服务
EXPOSE 9080

#设置环境变量
ENV JAVA_OPTS="-Xmx2048m -Xms2048m"
ENV SERVER_PORT="9085"

#指定容器启动程序
#方式一：该种字符串拼接方式不支持变量替换，如果需要参数，可以指定写死
#ENTRYPOINT ["sh","-c","java -server -Xmx512m -Xms512m","-Djava.security.egd=file:/dev/./urandom","-jar","/spring-demo.jar"]
#方式二：该种方法支持变量替换，通过docker run -e "JAVA_OPTS=-Xmx2048m -Xms2048m" -p 9090:9090 [容器id]
#ENTRYPOINT java -server ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /spring-demo.jar --server.port=${SERVER_PORT}
ENTRYPOINT java -server ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom  -jar /spring-demo.jar -Dserver.port=${SERVER_PORT}
